1. Field of the Invention
This invention relates to microprocessor systems. In particular, the invention relates to instruction set extension using prefixes.
2. Description of Related Art
Microprocessor technology has evolved over the years at a fast rate. Advances in computer architecture and semiconductor technology have created many opportunities to design new processors. There are typically two options for designing new processors: (1) defining a completely new architecture, and (2) extending the current architecture to accommodate new features. Each option has both advantages and disadvantages. However, when a processor has captured a significant market segment, option (2) offers many attractive advantages. The main advantage of extending the current architecture is the compatibility with current and earlier models. The disadvantages include the problems of getting out of the constraints imposed by the earlier designs.
New processors involve new features in both hardware and software. A new processor based on existing design typically has an additional set of instructions that can take advantage of the new hardware design. However, extending an instruction set by adding a new set of instructions is a challenging problem because of the constraints in the encoding of the instructions.
When an instruction set is originally developed, the typical approach is to encode the instructions with a minimum number of bits to leave room for future expansion. However, as the architecture evolves and becomes more and more mature, more and more instructions are defined. Eventually, there will be a point where there is no more space for encoding the instructions.
One solution to the problem is to eliminate some of the older instructions. However, this solution reduces the compatibility to the earlier processors. Software written for the earlier processors may not work for the new design. Another solution is to narrow the new instruction set to only a group of selective instructions to accommodate the little room left in the available opcode table. The solution results in poorer performance because it sacrifices many advanced features offered by the new design. Yet, another solution is to define a set of new opcodes which is different than the existing opcodes. The problems with this solution include the complexity of the decoding circuitry which occupies a large chip area and may not scale well with the processor frequency.
Therefore there is a need in the technology to provide an efficient method for extending an instruction set without increasing hardware complexity.